package x

import (
	"irisx/x/factory"
	"irisx/x/v"
)

// 定义接口
type R interface {
	Generate(p *v.CParam) []v.RName  // 生产方法
}

// 名字有两部分组成   名字 = F + B
// F 是前部分
// B 是后部分

// 建立工厂
func Factory(nameType int) R {
	switch nameType {
	case v.CN_SINGLE_M:
		return &factory.CnSingleM{}
	case v.CN_SINGLE_W:
		return &factory.CnSingleW{}
	case v.CN_COMPOUND_M:
		return &factory.CnCompoundM{}
	case v.CN_COMPOUND_W:
		return &factory.CnCompoundW{}
	case v.WS_M:
		return &factory.WsM{}
	case v.WS_W:
		return &factory.WsW{}
	case v.JP_M:
		return &factory.JpM{}
	case v.JP_W:
		return &factory.JpW{}
	case v.PLACE:
		return &factory.Place{}
	case v.OG:
		return &factory.Og{}
	case v.TREASURE:
		return &factory.Treasure{}
	default:
		return nil
	}
	return nil
}
